"""
Traceback (most recent call last):
  File "E:/WN15/Python/Code/Day13/demo01/Demo01.py", line 1, in <module>
    print(i)
NameError: name 'i' is not defined

像NameError这样类似的还有 SynatxError(语法错误),TypeError(类型错误),ValueError(值错误)
等.这样都会导致我们的代码不可以正常的执行.所有导致代码不可以正常执行的都被称之为是异常.
异常是Python对象.表示一个错误.当异常产生时,会导致代码停止执行(运行崩溃).这样会带来非常不友好的
UE(用户体验).所以我们必须对异常进行捕获处理.让我们的程序不会终止执行

异常常见的处理就是try-except 在try中放那些可能会产生异常的代码.在except对try中可能产生的异常
进行捕获处理

try:
    运行可能会产生异常的代码
except 捕捉的异常名称:
    执行捕捉后的处理
finally:
    表示最终一定会执行的代码.往往用于释放资源


raise 抛出一个异常

"""
try:
    print(i)
except TypeError: # 指明了要捕捉的类型是TypeError.那只能捕捉TypeError.其它的异常不处理!
    print("name i is not defined")
except: # 因为在except后面没有跟具体的类型.所有可以捕捉所有类型
    print("捡漏专家")
print(10)
print(10)
print(10)